package cn.lanqiao.bigDate.entity.sys;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * @description 中国行政地区表
 * @author zhangyue
 * @date 2022-03-22
 */
@Data
public class SysArea implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    @NotNull(message = "不能为空")
    private String id;

    /**
     * 层级
     */
    @NotNull(message = "不能为空")
    private int level;

    /**
     * 父级行政代码
     */
    @NotNull(message = "不能为空")
    private Long parentCode;

    /**
     * 行政代码
     */
    @NotNull(message = "不能为空")
    private Long areaCode;

    /**
     * 邮政编码
     */
    @NotNull(message = "不能为空")
    @Size(min = 6,max = 6,message = "请输入六位邮政编码")
    private String zipCode;

    /**
     * 区号
     */
    @NotNull(message = "不能为空")
    private String cityCode;

    /**
     * 名称
     */
    @NotNull(message = "不能为空")
    private String name;

    /**
     * 简称
     */
    @NotNull(message = "不能为空")
    private String shortName;

    /**
     * 组合名
     */
    @NotNull(message = "不能为空")
    private String mergerName;

    /**
     * 拼音
     */
    @NotNull(message = "不能为空")
    private String pinyin;

    /**
     * 经度
     */
    @NotNull(message = "不能为空")
    private BigDecimal lng;

    /**
     * 纬度
     */
    @NotNull(message = "不能为空")
    private BigDecimal lat;
    /**
     * 子节点
     */
    @TableField(select = false)
    private List<SysArea> child;

    public SysArea() {}
}